Tú dijiste:
Chati, revisemos esto por que me esta dando error cuando quiero registrar factura, o sea le doy clic en el boton de /facturacion, especificamente es este bloque=
<button
type="submit"
disabled={loadingPago || carrito.length === 0}
className={
mt-2 flex w-full items-center justify-center gap-2 rounded-lg py-2.5 text-sm font-semibold shadow-md transition ${
loadingPago || carrito.length === 0
? "cursor-not-allowed opacity-60"
: ""
} ${
dark
? "bg-[#FACC15] text-slate-900 hover:bg-[#EAB308]"
: "bg-[#CBA135] text-white hover:bg-[#B38A27]"
}}
>
{loadingPago ? "Procesando..." : "Confirmar compra y generar factura"}
</button>
Info que necesitamos checar De la api, controller/facturaPublic.controller.js=
const { executeSP } = require("../utils/executeSP");
const { sql } = require("../config/db");
/* 🟡 REGISTRO DE FACTURA PARA VISITANTE */
exports.registrarFacturaPublico = async (req, res) => {
try {
const {
nombreVisitante,
tipo_tarifa,
listaProductos, // "1|2,3|1"
listaTours, // "5|2" o null
idMetodoPago,
montoPago
} = req.body;
// VALIDACIONES
if (!nombreVisitante || !tipo_tarifa || !idMetodoPago || !montoPago)
return res.status(400).json({
ok:false,
message:"Faltan datos obligatorios (nombre, tarifa, idMetodoPago, montoPago)"
});
// EJECUTAR SP
const result = await executeSP("SP_RegistrarFactura_Publico",
{
nombreVisitante,
tipoTarifa: tipo_tarifa,
listaProductos: listaProductos ?? null,
listaTours: listaTours ?? null,
idMetodoPago,
montoPago
},
{ codigoFactura: sql.VarChar(200) }
);
return res.json({
ok: true,
mensaje: "Factura registrada correctamente 🎉",
codigo: result.output.codigoFactura
});
} catch (error) {
console.error("ERROR FACTURA PUBLICO >>", error);
return res.status(500).json({
ok:false,
message:"Error al registrar factura",
error:error.message
});
}
};
routes/facturaPublic.routes.js=
const router = require("express").Router();
const facturaPublic = require("../controllers/facturaPublic.controller");
// POST FACTURACIÓN PARA VISITANTE
router.post("/registrar-publico", facturaPublic.registrarFacturaPublico);
module.exports = router;
--Guarda estos errores y lógica que quisiera corregir después de que si se puedan registrar las facturas.
--1. Estaba notando que si agrego un tour al carrito y luego cambio de tarifa, agrego otra vez tour me sigue asignando el mismo precio, pero asi no debe de funcionar.
--2. No se si se esta asignando el impuesto y descuento correctamente porque no veo nada en la vista.
--3. Mejorar lo visual, donde haya imagen del producto (podemos agregar columna en sql server llamada urls y ahi poner la imagen) y aparezca bien bonito el catalogo.